#!usr/bin/env python3
# -*- coding: utf-8 -*-

'''
第十六章 下载数据-处理csv 数据 绘制天气曲线图
'''

# 读取 csv 格式数据
import csv,os
from matplotlib import pyplot as plt
import pygal
from datetime import datetime as dt
from utils.commonUtil import set_cn_font

set_cn_font()


rootUrl = os.path.dirname(__file__)
csvUrl = os.path.join(rootUrl,"sitka_weather_2014.csv") # 阿拉斯加 天气信息

date_times = []
max_templatrues = []
min_templatrues = []

with open(csvUrl) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    highs = []
    
    for row in reader:
        max_templatrues.append(int(row[1]))
        min_templatrues.append(int(row[3]))
        date_times.append(dt.strptime(row[0],"%Y-%m-%d"))



#生成直方图
hist = pygal.Bar()
hist.title = "阿特斯加天气直方图"
hist.x_labels = date_times
hist.y_labels = max_templatrues
hist.add("阿特斯加天气",max_templatrues)

hist.render_to_file(os.path.join(rootUrl,"ats_weath.svg"))

#绘制曲线图

fig = plt.figure(figsize=(10,6))

plt.plot(date_times,max_templatrues)
plt.plot(date_times,min_templatrues) #执行多次 plot 函数就是绘制多曲线
plt.x_labels = ["日期" for i in range(0,len(date_times))]
plt.fill_between(date_times,max_templatrues,min_templatrues,facecolor="green") #填充两条曲线间的空白区域
plt.xlabel("测试",fontsize=16)
#plt.xticks(rotation=-45) #设置x方向的刻度标签的角色 关于文本的属性设置可以参考官方文档 http://matplotlib.org/api/text_api.html#matplotlib.text.Text
plt.ylabel("最高温度",fontsize=16)
plt.tick_params(axis='both',which="major",labelsize=16)
#fig.autofmt_xdate() #可以自动格式化设置日期标签的位置

plt.show()